﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace 旅游管理系统.ResourceParamaters
{
    //要处理搜索旅游路线 api所有的参数
    /// <summary>
    /// 是针对旅游路线资源的参数组合
    /// </summary>
    public class TouristRouteResourceParamaters
    {
        //api中的两个参数 ,加入这两个参数后就可以在控制器中使用这两个参数组合了
        public string Keyword { get; set; }
        //新建两个成员变量
        public string RatingOperator { get; set; }
        public int? RatingValue { get; set; } //如果用户在搜索时没有使用 Rating时，RatingValue是娶不到值的，所以该字段为可填字段
        private string _rating; //Rating 的get的值
        public string Rating
        {
            get { return _rating; }
            set 
            {
                if (!string.IsNullOrEmpty(value))
                {
                    Regex regex = new Regex(@"([A-Za-z0-9\-]+)(\d+)"); //分为两个部分，第一部分是参数中的运算字符串部分(意思为 大写的A-Z,小写的a-z,0-9来进行匹配,从夫若干次)，第二部分是评分数值，
                                                                       //string operatorType = ""; //用来存储运算类型的字符串
                                                                       //int ratingValue = -1; //-1为随便值，
                    Match match = regex.Match(value); //value为set内部自动定义的参数，是上面私有变量 _rating预处理外部数据接收的参数
                                                      //Match match = regex.Match(parameters.Rating); //为 Match类型
                    if (match.Success) //如果 Match成功
                    {
                        //传入参数
                        RatingOperator = match.Groups[1].Value;  //第一个位置的 Value
                        RatingValue = Int32.Parse(match.Groups[2].Value);  //第二个位置的 Value
                    }
                }
                
                _rating = value;
            }
        }  //Rating被分为两个部分，一个是Rating的运算，一个是 RatingValue对评分预留的值
    }
}
